home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / pc / DDPLUS71.ZIP / RIPLINK.ZIP / RIPLINK.DOC < prev    next >
Encoding:
Text File  |  1995-03-23  |  93.5 KB  |  2,302 lines

  1. ┌───────────────────────────────────────────────────────────────────────────┐
  2. │░░░▒▒▒▓▓▓███               RIPlink - Version 1.21              ███▓▓▓▒▒▒░░░│
  3. └───────────────────────────────────────────────────────────────────────────┘
  4.  
  5.  
  6.            RIPlink(tm) - Version 1.21 - Documentation - 03-22-1995
  7.             Copyright 1994 InterProgramming, All Rights Reserved.
  8.               (1.21 changes by Steven R. Lorenz and Bob Dalton)
  9.                -NOW FREEWARE AND PART OF THE DDPLUS DOOR KIT-
  10.  
  11.  
  12.  
  13.  
  14. ┌───────────────────────────────────────────────────────────────────────────┐
  15. │░░░▒▒▒▓▓▓███                 Table of Contents                 ███▓▓▓▒▒▒░░░│
  16. └───────────────────────────────────────────────────────────────────────────┘
  17.  
  18. Section Title                                     Page
  19. ───────────────────────────────────────────────  ──────
  20. Distribution and Support Information                2
  21. Whats In the Package?                               2
  22. Warranty and Disclaimer                             3
  23. License Agreement                                   3
  24. Registration Information                            4
  25. General Information about RIPlink                   6
  26. Installation Information                            7
  27. Basic Memory Requirements                           7
  28. Interfacing with the DDPLUS Door ToolKit            8
  29. Using the Mouse with DDPLus Door Kit               10
  30. Definitions
  31.  ■ Constants                                       11
  32.  ■ Types                                           12
  33.  ■ Variables                                       15
  34.  ■ Procedures, Functions, and Methods              16
  35. Programming Suggestions                            45
  36. Comments from InterProgramming                     45
  37. Credits                                            46
  38. Index to Methods                                   47
  39.  
  40.  
  41.  
  42. ┌───────────────────────────────────────────────────────────────────────────┐
  43. │ RIPlink - Version 1.21                                             Page 2 │
  44. └───────────────────────────────────────────────────────────────────────────┘
  45.  
  46. ┌───────────────────────────────────────────────────────────────────────────┐
  47. │░░░▒▒▒▓▓▓███       Distribution and Support Information        ███▓▓▓▒▒▒░░░│
  48. └───────────────────────────────────────────────────────────────────────────┘
  49.  
  50. Riplink contains archives for TP 7.0 and has two different configurations of
  51. RIPlink.
  52. Those configurations are as follows:
  53.  
  54. R??-EXT.* - All driver files are contained in RIPLINK.FNT and RIPLINK.CHR.
  55. R??-ALL.* - All files are internal to the .EXE.
  56.  
  57. The TP 5.5 version does not include the *.ALL version as it does not support
  58. it.  TP 6.0 supports all extended fonts with the exception of Bold (Font 10).
  59.  
  60. The latest version of RIPlink may be downloaded or Freqed from the sites
  61. listed below.  This now is included in the DDplus 7.0 package FREQ DDPLUS
  62. from the sites below.
  63.  
  64. Files may be obtained from:
  65.  The Officer's Club BBS   TANSTAFL BBS         Note:
  66.  Steve Lorenz             Bob Dalton           Tom Morgan the original author
  67.  (818)249-8579            (501)741-5699        has turned over support to
  68.  28.8kbps,                14.4kbps             these door authors.
  69.  1:391/3010.1  CA,USA     1:391/3010  AR,USA
  70.  
  71. Installation instructions may be found below.  Please do NOT attempt to
  72. install RIPlink until you have read the installation instructions.
  73.  
  74. As of 1.21 we cannot extend support to any version of Turbo Pascal other than
  75. TP 7.0.  TP 6.0 will not work properly with the .obj files included in this
  76. package.
  77.  
  78. ┌───────────────────────────────────────────────────────────────────────────┐
  79. │░░░▒▒▒▓▓▓███              What's in the Package?               ███▓▓▓▒▒▒░░░│
  80. └───────────────────────────────────────────────────────────────────────────┘
  81. The following make up this package. Make sure you are not missing any or
  82. it won't work:
  83.  
  84. RIPLINK.CHR     - Support file required by RipLink.
  85. RIP.CTL         - Required for Ripdoor.exe sample program
  86. HISTORY.DOC     - History of RipLink
  87. RIPLINK.DOC     - What you are reading now
  88. RIPSCRIP.DOC    - Rip script specifications from Telegrafix
  89. RIP2PAS.EXE     - Program to convert .RIP into TP source code
  90. RIPDOOR.EXE     - Simple demo door program - Try running this before
  91.                    reading the rest of this doc to get a feel for what
  92.                    is happening. Type RIPDOOR /L /R to make it run.  Do
  93.                    it from the same directory where all the other Riplink
  94.                    files are.
  95. RIPLINK.FNT     - Font File required by Riplink
  96. COMPUTER.ICN    - Icon file for use with demo program
  97. BOLD.OBJ        - Font object file for use with Riplink
  98. EGAVGA.OBJ      - EGA/VGA Device driver
  99. EURO.OBJ        - Font object file for use with Riplink
  100. GOTH.OBJ        - Font object file for use with Riplink
  101. LCOM.OBJ        - Font object file for use with Riplink
  102. LITT.OBJ        - Font object file for use with Riplink
  103. SANS.OBJ        - Font object file for use with Riplink
  104. SCRI.OBJ        - Font object file for use with Riplink
  105. SIMP.OBJ        - Font object file for use with Riplink
  106. TRIP.OBJ        - Font object file for use with Riplink
  107. TSCR.OBJ        - Font object file for use with Riplink
  108. RIPLINK.PA1     - Support unit for RipLink
  109. RIPLINK.PA2     - Support unit for RipLink
  110. CITY.PAS        - Made from CITY.RIP by using RIP2PAS.EXE
  111. DDPLUSR.PAS     - Used in place of DDPLUS.PAS if you are using RipLink
  112. RIP2PAS.PAS     - Source code to RIP2PAS.EXE
  113. RIPDOOR.PAS     - Source code to demo program
  114. RIPLINK.PAS     - The main Riplink unit and the one you compile
  115. RIPLINK1.PAS    - Support unit for RipLink
  116. RIPLINKD.PAS    - Support unit for RipLink
  117. RIPLINKE.PAS    - Support unit for RipLink
  118. RIPLINKM.PAS    - Support unit for RipLink
  119. CITY.RIP        - Used with demo program
  120. PRESS.TXT       - Press release on RipLink from Tom Morgan
  121.  
  122. ┌───────────────────────────────────────────────────────────────────────────┐
  123. │ RIPlink - Version 1.21                                             Page 3 │
  124. └───────────────────────────────────────────────────────────────────────────┘
  125.  
  126. ┌───────────────────────────────────────────────────────────────────────────┐
  127. │░░░▒▒▒▓▓▓███              Warranty and Disclaimer              ███▓▓▓▒▒▒░░░│
  128. └───────────────────────────────────────────────────────────────────────────┘
  129.  
  130. This software and accompanying materials are distributed "as is" without 
  131. warranty, neither expressed nor implied; including but not limited to any 
  132. implied warranties of merchantability or fitness for a particular purpose.  
  133. In no event shall Thomas E. Morgan, InterProgramming or anyone else involved 
  134. with the creation or production of this product be held liable for any 
  135. damages, including, but not limited to, any lost profits, savings, data or 
  136. other incidental, indirect, special, or consequential damages arising out of 
  137. the use or inability to use this software, or for any claim by any other 
  138. party, even if Thomas E. Morgan or InterProgramming has been advised of the 
  139. possibility of such damages.  The person(s) using the software bear(s) all 
  140. risk as to the quality and performance of the software.  Use of this software 
  141. assumes acceptance of this statement.  This warranty is governed by the laws 
  142. of the State of New Mexico.
  143.  
  144. ┌───────────────────────────────────────────────────────────────────────────┐
  145. │░░░▒▒▒▓▓▓███                 License Agreement                 ███▓▓▓▒▒▒░░░│
  146. └───────────────────────────────────────────────────────────────────────────┘
  147.  
  148. RIPlink may only be used in the production of door programs.  It may NOT be
  149. used for terminal programs, comm programs or BBS packages.  Exceptions to
  150. this must be in writing from InterProgramming.  RIPlink may NOT be used in
  151. the creation of another toolkit.
  152.  
  153. Thomas E. Morgan retains ALL copyrights to the source code.  There is NO
  154. charge for using this kit, nor are there any royalties to pay.  Just be sure
  155. to give me, and the DDPlus toolkit, credit in your program documentation if
  156. you use any part of it in your door program. The RipLink kit is now FREEWARE
  157. as of version 7.0 of the DDPLUS DOOR PROGRAMMING TOOLKIT. RipLink source code
  158. may NOT be included in any other package other then DDPlus, nor may the
  159. source code be sold in ANY manner.  If you cannot accept these conditions
  160. then DO NOT USE RipLink!
  161.  
  162. This toolkit and all related programs and documentation are:
  163.   Copyright 1994 Thomas E. Morgan and InterProgramming, All Rights Reserved.
  164.  
  165. RIPscrip is a Trademark of TeleGrafix Communications, Inc.
  166.  
  167.  
  168.  
  169. ┌───────────────────────────────────────────────────────────────────────────┐
  170. │ RIPlink - Version 1.21                                             Page 4 │
  171. └───────────────────────────────────────────────────────────────────────────┘
  172.  
  173. ┌───────────────────────────────────────────────────────────────────────────┐
  174. │░░░▒▒▒▓▓▓███             Registration Information              ███▓▓▓▒▒▒░░░│
  175. └───────────────────────────────────────────────────────────────────────────┘
  176.  
  177. There is no registration per se.  But an acknowledgement that you are using
  178. Riplink and it's author and copyright holder, Tom Morgan should be included.
  179. This software if free to all door authors to use on condition than no term
  180. program nor bbs software be produced from it.
  181.                                                            Steve Lorenz
  182.  
  183. ┌───────────────────────────────────────────────────────────────────────────┐
  184. │ RIPlink - Version 1.21                                             Page 5 │
  185. └───────────────────────────────────────────────────────────────────────────┘
  186.  
  187. ┌───────────────────────────────────────────────────────────────────────────┐
  188. │ RIPlink - Version 1.21                                             Page 6 │
  189. └───────────────────────────────────────────────────────────────────────────┘
  190.  
  191. ┌───────────────────────────────────────────────────────────────────────────┐
  192. │░░░▒▒▒▓▓▓███         General Information about RIPlink         ███▓▓▓▒▒▒░░░│
  193. └───────────────────────────────────────────────────────────────────────────┘
  194.  
  195. RIPlink is based off of the Borland Graphics Interface (BGI).  The .BGI and
  196. .CHR files are NOT included with the archive.  However, they should not be
  197. needed as they have been compiled into the file RIPLINK.CHR for usage by your 
  198. program.
  199.  
  200. RIPlink provides RIPscrip support in two ways.  One is an internal support
  201. with various procedures that will translate the given parameters to RIPscrip
  202. commands and send them to the remote side as well as interpret them locally.
  203. The other option is to have RIPlink read in an external .RIP file.  It will
  204. then parse and display the RIP screen locally and will optionally send the
  205. commands to the remote side.  Because RIPlink is still under development, it 
  206. does not fully support all of the commands that make up RIPscrip.  It only 
  207. has limited interactive ability for the Sysop.  It will display the graphics 
  208. and do the mouse support, but it does not do things such as protocol support, 
  209. etc.  Those things may be added in a future release.
  210.  
  211. RIPlink is an Object Oriented toolkit.  Although not everyone is familiar
  212. with OOP programming, we feel that the provided examples should be enough to
  213. fully use RIPlink.
  214.  
  215. The RIPscrip commands that require that the remote terminal return a value
  216. must be handled with care.  RIPlink will only send the codes.  It will NOT
  217. wait for the returned information; this is left up to the individual
  218. programmer.
  219.  
  220. If you are looking for more information regarding the RIPscrip standard, it
  221. is highly suggested that you read the RIPscrip specification document
  222. which is included in this package.  As of this release, the latest version
  223. of RIP which is supported is 1.54.00.
  224.  
  225. Also in this package is the RIP2PAS program which will read a standard
  226. .RIP file and write turbo pascal source code for use with RipLink.
  227. See the file CITY.PAS for an example of the output produced by RIP2PAS.
  228. To use it just type RIP2PAS for further instructions.
  229.  
  230.  
  231. ┌───────────────────────────────────────────────────────────────────────────┐
  232. │ RIPlink - Version 1.21                                             Page 7 │
  233. └───────────────────────────────────────────────────────────────────────────┘
  234.  
  235. ┌───────────────────────────────────────────────────────────────────────────┐
  236. │░░░▒▒▒▓▓▓███             Installation Information              ███▓▓▓▒▒▒░░░│
  237. └───────────────────────────────────────────────────────────────────────────┘
  238.  
  239. As mentioned above, RIPlink has two different versions or models.  The
  240. following information refers to both of the different models of RIPlink
  241. (EXTernal and ALL.)  Please note that TP 5.5 does not support the ALL model.
  242. What does this mean to YOUR door program?  If you use the EXTERNAL model
  243. you will need to ensure that the RIPLINK.CHR and RIPLINK.FNT files are
  244. included IN your door product distribution archive along with all the
  245. other program files. You will also need to notify using sysops that
  246. these files must be available in the same directory as your door program.
  247. If you use the INTERNAL model, then you will only need to provide the
  248. RIPLINK.FNT file in your door product distribution archive and notify
  249. using sysops that this file must be in the same directory as the door
  250. program.  
  251.  
  252. You will need to install either one or both of the models depending on your 
  253. needs.  For large applications, we suggest that you use the EXTernal version.  
  254. For smaller applications, the ALL version is useful as it combines all the 
  255. code into one executable without requiring external driver files.  The file 
  256. names in each version are the same, so don't attempt to install more than one
  257. version in a directory.  Please also note that RIPlink relies upon the GRAPH
  258. unit provided with TP.  Make sure that RIPlink has access to the GRAPH unit 
  259. and the appropriate driver files as necessary.
  260.  
  261. The installation itself is fairly simple.  Once you have chosen the version
  262. which will best serve your needs, set the definition flags in the RipLink.PAS
  263. unit and compile that unit.  Make sure ALL required RipLink files are in
  264. the same directory when you compile.  Then move the TPU's to the place where
  265. you store all your compiled units.  In TP 6.0 and 7.0, this is under
  266. Options.Directories.Unit_Directories.
  267.  
  268. As an introduction to RIPlink we suggest working with RIPDOOR until you feel
  269. comfortable with how RIPLink interfaces with the DDPlus Door Toolkit.  Then
  270. move on to using RIPlink in your own projects.   
  271.  
  272.  
  273. ┌───────────────────────────────────────────────────────────────────────────┐
  274. │░░░▒▒▒▓▓▓███             Basic Memory Requirements             ███▓▓▓▒▒▒░░░│
  275. └───────────────────────────────────────────────────────────────────────────┘
  276.  
  277. The following memory requirements are based on information gathered from
  278. RIPDOOR under TP7.  They may vary from version to version and from
  279. application to application.
  280.  
  281. No Internal Drivers (Ext): 84k
  282. Internal Drivers    (All): 212k
  283.  
  284. Please note that these figures are from our testing here at InterProgramming
  285. and will not necessarily match your results.
  286.  
  287. We are aware that these figures are quite high and that you may not be able
  288. to sacrifice this much memory.  If this is the case, start by working with
  289. the EXTernal model.  Next, you may overlay the units RIPlink and RIPlink1.
  290. You may NOT overlay RIPlinkD, RIPlinkM, or RIPlinkE.
  291.  
  292. ┌───────────────────────────────────────────────────────────────────────────┐
  293. │░░░▒▒▒▓▓▓███                RipLink with DDplus/7              ███▓▓▓▒▒▒░░░│
  294. └───────────────────────────────────────────────────────────────────────────┘
  295.  
  296. RipLink 1.21 has been modified slightly to work with DDplus 7.0+.  A special
  297. RipLink specific version of DDplus unit called DDPLUSR.pas should be used
  298. instead of DDplus if you plan of using RipLink.
  299.  
  300. Riplink has been modified to work better in DV windows.  It now chooses the
  301. best and most stable graphics mode.  In many cases this will be VGA, even
  302. though Rip graphics is only EGA.  If you see a black bar about 1 1/2 inch
  303. above the status bar when using DDplusR you are viewing in VGA mode.
  304.  
  305. Enclosed is a test program called Ripdoor which is also a DDplusR door. This
  306. when run with the /R run line parm will show local graphics if the caller is
  307. using rip or if the caller is local.  To view local use both /L /R parms.
  308. You can have the program use ansi or text if you run it without the /R parm.
  309.  
  310. Note:
  311. Some graphics cards produced a flicker or fuzzy or strange colored picture
  312. when run in EGA mode under DESQview.  Running in VGA mode seems to eliminate
  313. this.
  314.  
  315. ┌───────────────────────────────────────────────────────────────────────────┐
  316. │ RIPlink - Version 1.21                                             Page 8 │
  317. └───────────────────────────────────────────────────────────────────────────┘
  318.  
  319. ┌───────────────────────────────────────────────────────────────────────────┐
  320. │░░░▒▒▒▓▓▓███      Interfacing with the DDPlus Door Toolkit     ███▓▓▓▒▒▒░░░│
  321. └───────────────────────────────────────────────────────────────────────────┘
  322.  
  323. RIPlink has no internal comm routine support.  Instead, RIPlink must be rely
  324. on the DDPlus Door Toolkit to provide this support  This section will explain
  325. how to RipLink interfaces with the DDPlus Door Toolkit comm routines so that
  326. they will talk to each other. Included in the archive is DDPLUSR.PAS which
  327. substitutes for the normal DDPLUS.PAS unit if you are using RipLink. If you
  328. are using RipLink with DDPlus you will need to replace DDPLus.PAS with
  329. DDPLusR.PAS instead and then compile DDPLUSR.PAS.  Make sure you also change
  330. all references in your program from "Uses DDPlus" to "Uses  with the /R run line parm will show local graphics if the caller is
  331. using rip or if the caller is local.  To view local use both /L /R parms.
  332. You can have the program use ansi or text if you run it without the /R parm.
  333.  
  334. Note:
  335. Some graphics cards produced a flicker or fuzzy or strange colored picture
  336. when run in EGA mode under DESQview.  Running in VGA mode seems to eliminate
  337. this.
  338.  
  339. *******
  340.  
  341. Because of the OOP structure of RIPlink, we can simply override one of
  342. RIPlink's procedures to call the appropriate procedure(s) in the comm
  343. routines.  This is done by first creating a descendent of the RIPlink object:
  344.  
  345.   RIPtr = ^RIPObject;
  346.   RIPObject = object(RIPObj)
  347.     Procedure SendStr(instr : string); virtual;
  348.     Procedure SendStrCR(instr : string); virtual;
  349.   end;
  350.  
  351. Now, the SendStr and SendStrCR procedures just need to be overriden so that
  352. they will call the proper procedure to send strings over the modem.
  353.  
  354.   Procedure RIPObject.SendStr(instr : string);
  355.   begin
  356.     SendText(instr);
  357.   end;
  358.  
  359.   Procedure RIPObject.SendStrCR(instr : string);
  360.   begin
  361.     SendText(instr+#13#10);
  362.   end;
  363.  
  364. These procedures call the procedure SendText and sends it the string over
  365. the modem.  Notice that one procedure appends a CRLF (#13#10) to the end
  366. of the string and one does not. Also, the procedure you call MUST NOT send
  367. the characters to the local console.  If it does send the characters to the
  368. local console, RIPlink's support to send RIP codes to the user and let the
  369. Sysop still use ANSI will be void.  In this example, SendText takes the
  370. string and sends the characters directly to the user.  It does not display
  371. anything on the local screen at all.
  372.  
  373.  
  374.  
  375. ┌───────────────────────────────────────────────────────────────────────────┐
  376. │ RIPlink - Version 1.21                                             Page 9 │
  377. └───────────────────────────────────────────────────────────────────────────┘
  378.  
  379. The next item that must be dealt with is handling the status line.  The code
  380. necessary to override the Status Line is already incorporated into the 
  381. DDPlusR.PAS unit.  What is being done is to override or change the existing
  382. status line procedure such that it calls RIPlink's status line procedure.
  383. It ALSO must fill in the string variable:
  384.  
  385.   RipObj.StatText  : String[75];
  386.  
  387. This variable tells RIPlink what text to display.  Please note that the
  388. override should ONLY be called if the Sysop wants RIP.  The status line has 
  389. no effect on the user's side.  Here is an example procedure that gets called 
  390. from a door toolkit.  Note that this procedure then calls RIPlink's StatLine 
  391. procedure.  
  392.  
  393. Procedure StatusL; far;
  394. begin
  395.   RIP^.StatText := UserName+', '+baud+', Time: '+inttostr(timeremaining);
  396.   RIP^.StatLine;
  397. end;
  398.  
  399. This is a simple example which just sets the string variable and then calls
  400. StatLine to display the text.
  401.  
  402.  
  403. ┌───────────────────────────────────────────────────────────────────────────┐
  404. │ RIPlink - Version 1.21                                            Page 10 │
  405. └───────────────────────────────────────────────────────────────────────────┘
  406.  
  407. ┌───────────────────────────────────────────────────────────────────────────┐
  408. │░░░▒▒▒▓▓▓███         Using the Mouse with Door Toolkits        ███▓▓▓▒▒▒░░░│
  409. └───────────────────────────────────────────────────────────────────────────┘
  410.  
  411. This section provides information about getting the strings that the mouse
  412. buttons generate. This also has already been incorporated into the 
  413. DDPlusR.PAS unit.
  414.  
  415. RIPlink has a 128 byte buffer that it uses to store the strings in.  There
  416. are three procedures that you'll need to know about.  Everything else
  417. concerning the mouse is already taken care of.  They are:
  418.  
  419. Procedure RIP^.CheckMouse;
  420. Function  RIP^.CharInBuffer:boolean;
  421. Function  RIP^.GetNextChar:char;
  422.  
  423. CheckMouse is called routinely by DDPlusR so it will check the mouse's
  424. buttons, invert the buttons, move strings to the buffer, etc. CharInBuffer
  425. simply reports True if a character is in the buffer.  GetNextChar gets the
  426. next character in the buffer and moves the pointer to the next character.
  427.  
  428.  
  429. ┌───────────────────────────────────────────────────────────────────────────┐
  430. │ RIPlink - Version 1.21                                            Page 11 │
  431. └───────────────────────────────────────────────────────────────────────────┘
  432.  
  433. ┌───────────────────────────────────────────────────────────────────────────┐
  434. │░░░▒▒▒▓▓▓███              Definitions: Constants               ███▓▓▓▒▒▒░░░│
  435. └───────────────────────────────────────────────────────────────────────────┘
  436.  
  437. RIPLINK.PAS:
  438.   AnsiMaxParams       = 5;
  439.   ...
  440.   iQueueSize          = 32;
  441.  
  442.   These constants are for the TextWindow's ANSI support.
  443.  
  444.   TextOffsetX : array[0..4] of Byte = ( 8, 7, 8, 7,16);
  445.   TextOffsetY : array[0..4] of Byte = ( 8, 8,14,14,14);
  446.   TextMaxX    : array[0..4] of Byte = (79,90,79,90,39);
  447.   TextMaxY    : array[0..4] of Byte = (42,42,24,24,24);
  448.  
  449.   These are also used by the TextWindow.  They are based off of the different
  450.   text window fonts defined by RIPscrip.
  451.  
  452. RIPLINK1.PAS:
  453.   MegaArray : array[0..35] of Char = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';
  454.  
  455.   Although this probably won't be useful, it is listed here in case you
  456.   choose to write your own procedures to convert Decimal to/from MegaNums.
  457.   MegaNums are the number system used with all RIPscrip commands.  MegaNum is 
  458.   the shortened name for HexaTriDeciaml.  MegaNums are a base-36 number 
  459.   system with digits ranging from 0-9,A-Z.
  460.  
  461. RIPLINK.PA2:
  462.   MetricArray : MetricArrayType = ...
  463.   Low_Char    : Array[0..255] of Byte = ...
  464.  
  465.   These are used by the RipButton procedure to determine the offsets of the
  466.   text in the buttons.
  467.  
  468.  
  469.  
  470. ┌───────────────────────────────────────────────────────────────────────────┐
  471. │ RIPlink - Version 1.21                                            Page 12 │
  472. └───────────────────────────────────────────────────────────────────────────┘
  473.  
  474. ┌───────────────────────────────────────────────────────────────────────────┐
  475. │░░░▒▒▒▓▓▓███                Definitions: Types                 ███▓▓▓▒▒▒░░░│
  476. └───────────────────────────────────────────────────────────────────────────┘
  477.  
  478. RIPLINK.PAS:
  479.   Str2          = String[2];
  480.   Str4          = String[4];
  481.   Str12         = String[12];
  482.   Str50         = String[50];
  483.  
  484.   These are just typical string constants that RIPlink uses:
  485.  
  486.   FPT           = Array[1..8] of Byte;
  487.  
  488.   This is a type used for Fill Patterns.
  489.  
  490.   MouseRegionRecord = record
  491.     x0,y0,x1,y1     : Word;
  492.     Invert,Reset    : Boolean;
  493.     TheText         : Str50;
  494.   end;
  495.  
  496.   This is the record used to keep track of the active mouse buttons.
  497.  
  498.   RootPtr = ^Root;
  499.   Root = object
  500.     constructor Init;
  501.     destructor Done; virtual;
  502.   end;
  503.  
  504.   This is the Root object.  It serves no purpose except to be inherited by
  505.   the RIPlink object.
  506.  
  507.  
  508.  
  509. ┌───────────────────────────────────────────────────────────────────────────┐
  510. │ RIPlink - Version 1.21                                            Page 13 │
  511. └───────────────────────────────────────────────────────────────────────────┘
  512.  
  513.   The following is the RIPlink object.  Each part is covered in a later 
  514.   section.  Please note that all parameters are in Decimal, NOT MegaNums.  
  515.   RIPlink does the conversion for you.
  516.  
  517.   RipPtr = ^RipObj;
  518.   RipObj = object(Root)
  519.     {General}
  520.     IconDir     : DirStr;
  521.     StatText    : String[75];
  522.  
  523.     {Mouse}
  524.     MouseExist  : Boolean;
  525.     IsMouseOn   : Boolean;
  526.  
  527.     Constructor Init(UseRip: Boolean; FontName: String);
  528.     Procedure   RipTextWindow(x0,y0,x1,y1: Byte; Wrap: Boolean; Size: Byte);
  529.     Procedure   RipViewPort(x0,y0,x1,y1: Word);
  530.     Procedure   RipResetWindows;
  531.     Procedure   RipEraseWindow;
  532.     Procedure   RipEraseView;
  533.     Procedure   RipGotoXY(x0,y0: Byte);
  534.     Procedure   RipHome;
  535.     Procedure   RipEraseEOL;
  536.     Procedure   RipColor(Clr: Byte);
  537.     Procedure   RipSetPalette(c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,
  538.                               c15,c16: Word);
  539.     Procedure   RipOnePalette(Color,Value: Word);
  540.     Procedure   RipWriteMode(Mode: Byte);
  541.     Procedure   RipMove(x0,y0: Word);
  542.     Procedure   RipText(InStr: String);
  543.     Procedure   RipTextXY(x0,y0: Word; InStr: String);
  544.     Procedure   RipFontStyle(Font,Direct,Size: Byte);
  545.     Procedure   RipPixel(x0,y0: Word);
  546.     Procedure   RipLine(x0,y0,x1,y1: Word);
  547.     Procedure   RipRectangle(x0,y0,x1,y1: Word);
  548.     Procedure   RipBar(x0,y0,x1,y1: Word);
  549.     Procedure   RipCircle(x0,y0,Radius: Word);
  550.     Procedure   RipOval(x0,y0,StAngle,EndAngle,xRad,yRad: Word);
  551.     Procedure   RipFilledOval(x0,y0,xRad,yRad: Word);
  552.     Procedure   RipArc(x0,y0,StAngle,EndAngle,Rad: Word);
  553.     Procedure   RipOvalArc(x0,y0,StAngle,EndAngle,xRad,yRad: Word);
  554.     Procedure   RipPieSlice(x0,y0,StAngle,EndAngle,Rad: Word);
  555.     Procedure   RipOvalPieSlice(x0,y0,StAngle,EndAngle,RadX,RadY: Word);
  556.     Procedure   RipBezier(x0,y0,x1,y1,x2,y2,x3,y3,Count: Word);
  557.     Procedure   RipPolygon(NumPoints: Word; var PolyPoints);
  558.     Procedure   RipFillPoly(NumPoints: Word; var PolyPoints);
  559.     Procedure   RipPolyLine(NumPoints: Word; var PolyPoints);
  560.     Procedure   RipFill(x0,y0,Border: Word);
  561.     Procedure   RipLineStyle(Style,Pattern,Thick: Word);
  562.     Procedure   RipFillStyle(Style,Color: Word);
  563.     Procedure   RipFillPattern(Pattern: FPT; Color: Word);
  564.     Procedure   RipMouse(x0,y0,x1,y1: Word; Click,Clear: Boolean;
  565.                          InStr: String);
  566.     Procedure   RipKillMouseFields;
  567.  
  568.  
  569.  
  570. ┌───────────────────────────────────────────────────────────────────────────┐
  571. │ RIPlink - Version 1.21                                            Page 14 │
  572. └───────────────────────────────────────────────────────────────────────────┘
  573.  
  574.     Procedure   RipBeginText(x0,y0,x1,y1: Word);
  575.     Procedure   RipRegionText(Justify: Boolean; InStr: String);
  576.     Procedure   RipEndText;
  577.     Procedure   RipGetImage(x0,y0,x1,y1: Word);
  578.     Procedure   RipPutImage(x0,y0,Mode: Word);
  579.     Procedure   RipWriteIcon(FName: Str12);
  580.     Procedure   RipLoadIcon(x0,y0,Mode: Word; ClipBrd: Boolean; 
  581.                             FName: Str12);
  582.     Procedure   RipButtonStyle(Wid,Hgt,Orient,Flags,BevSize,dFore,dBack,
  583.                                Bright,Dark,Surface,Grp_No,Flags2,ULine_Col,
  584.                                Corner_Col: Word);
  585.     Procedure   RipButton(x0,y0,x1,y1,HotKey: Word; Flags: Byte; Icon: Str12;
  586.                           sLabel: String; Cmd: String);
  587.     Procedure   RipDefine(Flags: Word; TextVar: Str12; Width: Byte; Ques,
  588.                           Default: String);
  589.     Procedure   RipQuery(Mode: Byte; InStr: String);
  590.     Procedure   RipCopyRegion(x0,y0,x1,y1,DestLine: Word);
  591.     Procedure   RipReadScene(FName: Str12);
  592.     Procedure   RipFileQuery(Mode: Word; FName: Str12);
  593.     Procedure   RipEnterBlockMode(UL: Boolean; Proto,FType: Word;
  594.                                   FName: Str12);
  595.     Procedure   RipNoMore;
  596.     Procedure   SendStr(InStr: String); Virtual;
  597.     Procedure   SendStrCR(InStr: String); Virtual;
  598.     Procedure   StatLine;
  599.     Destructor  Done; Virtual;
  600.     Function    DisplayRIPfile(Path: String): Boolean;
  601.     Procedure   ParseRipStr(S: String; SendChar: Boolean);
  602.     Procedure   ParseRip(C: Char; SendChar: Boolean);
  603.     Procedure   DoTextStr(S: String);
  604.     Procedure   DoTextChar(C: Char);
  605.  
  606.     Procedure   MouseInit;
  607.     Procedure   MouseOn;
  608.     Procedure   MouseOff;
  609.     Procedure   GetPosition(var ButtonStatus,xPos,yPos: Integer);
  610.     Procedure   SetMousePos(x,y: Integer);
  611.     Procedure   CheckMouse;
  612.     Procedure   AddRegion(x0,y0,x1,y1: Word; Invert,Reset: Boolean;
  613.                           TheText: Str50);
  614.     Function    CharInBuffer: Boolean;
  615.     Function    GetNextChar: Char;
  616.     Procedure   KillRegions;
  617.     Procedure   KillBuffer;
  618.   end;
  619.  
  620.  
  621.  
  622. ┌───────────────────────────────────────────────────────────────────────────┐
  623. │ RIPlink - Version 1.21                                            Page 15 │
  624. └───────────────────────────────────────────────────────────────────────────┘
  625.  
  626. RIPLINK1:
  627.   Str2  = String[2];
  628.   Str4  = String[4];
  629.  
  630.   String types used by the MegaNum <==> Decimal conversion routines.
  631.  
  632. GRAPH:
  633.   PointRec = record
  634.     X : word;
  635.     Y : word;
  636.   end;
  637.  
  638.   This record is used for the various polygon related procedures.  Details
  639.   are given in the procedures.
  640.  
  641.  
  642.  
  643. ┌───────────────────────────────────────────────────────────────────────────┐
  644. │░░░▒▒▒▓▓▓███              Definitions: Variables               ███▓▓▓▒▒▒░░░│
  645. └───────────────────────────────────────────────────────────────────────────┘
  646.  
  647.   RipObj.IconDir     : DirStr;
  648.  
  649.   This is the directory RIPlink will look in for *.ICN files.  If it's not
  650.   defined, it will default to the current directory.
  651.  
  652.   RipObj.StatText    : String[75];
  653.  
  654.   This is the string which contains the text to display on the status line.
  655.  
  656.   RipObj.MouseExist  : Boolean;
  657.  
  658.   Does a mouse exist and is it enabled?
  659.  
  660.   RipObj.IsMouseOn   : Boolean;
  661.  
  662.   Is the mouse pointer currently on the screen?
  663.  
  664.  
  665.  
  666. ┌───────────────────────────────────────────────────────────────────────────┐
  667. │ RIPlink - Version 1.21                                            Page 16 │
  668. └───────────────────────────────────────────────────────────────────────────┘
  669.  
  670. ┌───────────────────────────────────────────────────────────────────────────┐
  671. │░░░▒▒▒▓▓▓███  Definitions: Procedures, Functions, and Methods  ███▓▓▓▒▒▒░░░│
  672. └───────────────────────────────────────────────────────────────────────────┘
  673.  
  674. Init constructor                                                      RIPlink
  675. ─────────────────────────────────────────────────────────────────────────────
  676. Purpose    : Initializes the RIPlink Object
  677.  
  678. Declaration: Init(UseRip: Boolean; FontName: String);
  679.  
  680. Variables  : UseRip     : Display graphics locally
  681.              FontName   : Alternate name of RIPLINK.CHR and RIPLINK.FNT
  682.  
  683. Notes      : You have the option of renaming RIPLINK.CHR and RIPLINK.FNT to
  684.              something that coincides with your program.  For example, if you
  685.              renamed them to MYDOOR.*, you would pass 'MYDOOR' as the 
  686.              parameter for FontName.  Note that you do not pass the 
  687.              extension.
  688.  
  689.  
  690.  
  691. RipTextWindow procedure                                               RIPlink
  692. ─────────────────────────────────────────────────────────────────────────────
  693. Purpose    : Define the text window
  694.  
  695. Declaration: RipTextWindow(x0,y0,x1,y1: Byte; Wrap: Boolean; Size: Byte);
  696.  
  697. Support    : Send and process
  698.  
  699. Variables  : x0,y0      : Upper lefthand coordinates
  700.              x1,y1      : Lower righthand coordinates
  701.              Wrap       : Wrap text at right edge?
  702.              Size       : Size of characters (see chart)
  703.  
  704.              Size   Font Size   X Range  Y Range
  705.              ───────────────────────────────────
  706.              0     8x8          0-79     0-42
  707.              1     7x8          0-90     0-42
  708.              2     8x14         0-79     0-24
  709.              3     7x14         0-90     0-24
  710.              4     16x14        0-39     0-24
  711.  
  712.  
  713.  
  714. RipViewPort procedure                                                 RIPlink
  715. ─────────────────────────────────────────────────────────────────────────────
  716. Purpose    : Define the view port
  717.  
  718. Declaration: RipViewPort(x0,y0,x1,y1: Word);
  719.  
  720. Support    : Send and process
  721.  
  722. Variables  : x0,y0      : Upper lefthand coordinates
  723.              x1,y1      : Lower righthand coordinates
  724.  
  725.  
  726.  
  727. ┌───────────────────────────────────────────────────────────────────────────┐
  728. │ RIPlink - Version 1.21                                            Page 17 │
  729. └───────────────────────────────────────────────────────────────────────────┘
  730.  
  731. RipResetWindows procedure                                             RIPlink
  732. ─────────────────────────────────────────────────────────────────────────────
  733. Purpose    : Reset the RIP screen, mouse, buttons, etc.
  734.  
  735. Declaration: RipResetWindows;
  736.  
  737. Support    : Send and process
  738.  
  739. Notes      : This is a "reset button" for RIPscrip.  Everything is returned
  740.              to its default state when this is called.  This includes the
  741.              view port, text screen, mouse regions, palettes, etc.
  742.  
  743.  
  744.  
  745. RipEraseWindow procedure                                              RIPlink
  746. ─────────────────────────────────────────────────────────────────────────────
  747. Purpose    : Erase text window
  748.  
  749. Declaration: RipEraseWindow;
  750.  
  751. Support    : Send and process
  752.  
  753. Notes      : This clears the area defined as the text window.  This includes
  754.              any graphics that are in the text window area.
  755.  
  756.  
  757.  
  758. RipEraseView procedure                                                RIPlink
  759. ─────────────────────────────────────────────────────────────────────────────
  760. Purpose    : Erase view port
  761.  
  762. Declaration: RipEraseView;
  763.  
  764. Support    : Send and process
  765.  
  766.  
  767.  
  768. RipGotoXY procedure                                                   RIPlink
  769. ─────────────────────────────────────────────────────────────────────────────
  770. Purpose    : Move text cursor
  771.  
  772. Declaration: RipGotoXY(x0,y0: Byte);
  773.  
  774. Support    : Send and process
  775.  
  776. Variables  : x0,y0      : Location to move text cursor to
  777.  
  778. Notes      : x0 and y0 are 0-based.
  779.  
  780.  
  781.  
  782. ┌───────────────────────────────────────────────────────────────────────────┐
  783. │ RIPlink - Version 1.21                                            Page 18 │
  784. └───────────────────────────────────────────────────────────────────────────┘
  785.  
  786. RipHome procedure                                                     RIPlink
  787. ─────────────────────────────────────────────────────────────────────────────
  788. Purpose    : Home the text cursor
  789.  
  790. Declaration: RipHome;
  791.  
  792. Support    : Send and process
  793.  
  794. Notes      : This moves the text cursor to the upper lefthand corner of the
  795.              text window.
  796.  
  797.  
  798.  
  799. RipEraseEOL procedure                                                 RIPlink
  800. ─────────────────────────────────────────────────────────────────────────────
  801. Purpose    : Erase to the End of Line (text)
  802.  
  803. Declaration: RipEraseEOL;
  804.  
  805. Support    : Send and process
  806.  
  807.  
  808.  
  809. RipColor procedure                                                    RIPlink
  810. ─────────────────────────────────────────────────────────────────────────────
  811. Purpose    : Set drawing color
  812.  
  813. Declaration: RipColor(Clr: Byte);
  814.  
  815. Support    : Send and process
  816.  
  817. Variables  : Clr        : New drawing color (see chart)
  818.  
  819.              Value   Color
  820.              ─────────────────────────────────────────────────
  821.              00      Black (00 is always the background color)
  822.              01      Blue
  823.              02      Green
  824.              03      Cyan
  825.              04      Red
  826.              05      Magenta
  827.              06      Brown
  828.              07      Light Gray
  829.              08      Dark Gray
  830.              09      Light Blue
  831.              10      Light Green
  832.              11      Light Cyan
  833.              12      Light Red
  834.              13      Light Magenta
  835.              14      Yellow
  836.              15      White
  837.  
  838.  
  839.  
  840. ┌───────────────────────────────────────────────────────────────────────────┐
  841. │ RIPlink - Version 1.21                                            Page 19 │
  842. └───────────────────────────────────────────────────────────────────────────┘
  843.  
  844. RipSetPalette procedure                                               RIPlink
  845. ─────────────────────────────────────────────────────────────────────────────
  846. Purpose    : Set 16 color palette
  847.  
  848. Declaration: RipSetPalette(c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,
  849.              c15,c16: Word);
  850.  
  851. Support    : Send and process
  852.  
  853. Variables  : c1..c16    : Each color in the palette (see chart)
  854.  
  855.              RIP Palette   Master Palette
  856.              Color Code      Color Code      Color
  857.              ───────────────────────────────────────────────
  858.                01 (00)          0            Black
  859.                02 (01)          1            Blue
  860.                03 (02)          2            Green
  861.                04 (03)          3            Cyan
  862.                05 (04)          4            Red
  863.                06 (05)          5            Magenta
  864.                07 (06)          7            Brown
  865.                08 (07)          20           Light Gray
  866.                09 (08)          56           Dark Gray
  867.                10 (09)          57           Light Blue
  868.                11 (10)          58           Light Green
  869.                12 (11)          59           Light Cyan
  870.                13 (12)          60           Light Red
  871.                14 (13)          61           Light Magenta
  872.                15 (14)          62           Yellow
  873.                16 (15)          63           White
  874.  
  875.              This chart lists the default colors.
  876.  
  877.  
  878.  
  879. RipOnePalette procedure                                               RIPlink
  880. ─────────────────────────────────────────────────────────────────────────────
  881. Purpose    : Set one color in the palette
  882.  
  883. Declaration: RipOnePalette(Color,Value: Word);
  884.  
  885. Support    : Send and process
  886.  
  887. Variables  : Color      : Which color to change (0-15)
  888.              Value      : New color for palette (0-63) (see chart above)
  889.  
  890.  
  891.  
  892. ┌───────────────────────────────────────────────────────────────────────────┐
  893. │ RIPlink - Version 1.21                                            Page 20 │
  894. └───────────────────────────────────────────────────────────────────────────┘
  895.  
  896. RipWriteMode procedure                                                RIPlink
  897. ─────────────────────────────────────────────────────────────────────────────
  898. Purpose    : Set the write mode
  899.  
  900. Declaration: RipWriteMode(Mode: Byte);
  901.  
  902. Support    : Send and process
  903.  
  904. Variables  : Mode       : New write mode (see chart)
  905.  
  906.              Mode   Description
  907.              ──────────────────────────────────────
  908.              00     Normal drawing mode (overwrite)
  909.              01     XOR (complimentary) mode
  910.  
  911.  
  912.  
  913. RipMove procedure                                                     RIPlink
  914. ─────────────────────────────────────────────────────────────────────────────
  915. Purpose    : Move the Current Pointer (CP)
  916.  
  917. Declaration: RipMove(x0,y0: Word);
  918.  
  919. Support    : Send and process
  920.  
  921. Variables  : x0,y0      : Location to move to
  922.  
  923. Notes      : This procedure is used to move the graphics pointer, also known
  924.              as the current pointer (CP).
  925.  
  926.  
  927.  
  928. RipText procedure                                                     RIPlink
  929. ─────────────────────────────────────────────────────────────────────────────
  930. Purpose    : Write text at CP
  931.  
  932. Declaration: RipText(InStr: String);
  933.  
  934. Support    : Send and process
  935.  
  936. Variables  : InStr      : String to write
  937.  
  938. Notes      : This procedure write "graphics" text.  The text is written in a
  939.              font in the view port.  This text does not go into the text 
  940.              window.
  941.  
  942.  
  943.  
  944. ┌───────────────────────────────────────────────────────────────────────────┐
  945. │ RIPlink - Version 1.21                                            Page 21 │
  946. └───────────────────────────────────────────────────────────────────────────┘
  947.  
  948. RipTextXY procedure                                                   RIPlink
  949. ─────────────────────────────────────────────────────────────────────────────
  950. Purpose    : Write text at a specified location
  951.  
  952. Declaration: RipTextXY(x0,y0: Word; InStr: String);
  953.  
  954. Support    : Send and process
  955.  
  956. Variables  : x0,y0      : Location to start writing text at
  957.              InStr      : String to write
  958.  
  959. Notes      : This procedure is really a combination of the RipMove procedure 
  960.              and the RipText procedure.  As in RipText, this text is 
  961.              "graphics" text.
  962.  
  963.  
  964.  
  965. RipFontStyle procedure                                                RIPlink
  966. ─────────────────────────────────────────────────────────────────────────────
  967. Purpose    : Set font type, direction, and size
  968.  
  969. Declaration: RipFontStyle(Font,Direct,Size: Byte);
  970.  
  971. Support    : Send and process
  972.  
  973. Variables  : Font       : Font to use (see chart)
  974.              Direct     : Direction of text (see chart)
  975.              Size       : Size of font (1-10)
  976.  
  977.              Font   Description of Font
  978.              ────────────────────────────────
  979.              00     Default 8x8 font
  980.              01     Triplex Font
  981.              02     Small Font
  982.              03     Sans Serif Font
  983.              04     Gothic [Old English] Font
  984.              05     Script Font
  985.              06     Simplex Font
  986.              07     Triplex Script Font
  987.              08     Complex Font
  988.              09     European Font
  989.              10     Bold Font
  990.  
  991.              Value   Direction
  992.              ──────────────────
  993.              00      Horizontal
  994.              01      Vertical
  995.  
  996. Notes      : Except for font 0, all fonts are scalable.  Font 0 is bit-mapped
  997.              and looks best in size 1.  Font sizes may range from 1 to 10.
  998.  
  999.  
  1000.  
  1001. ┌───────────────────────────────────────────────────────────────────────────┐
  1002. │ RIPlink - Version 1.21                                            Page 22 │
  1003. └───────────────────────────────────────────────────────────────────────────┘
  1004.  
  1005. RipPixel procedure                                                    RIPlink
  1006. ─────────────────────────────────────────────────────────────────────────────
  1007. Purpose    : Draw a pixel in current drawing color
  1008.  
  1009. Declaration: RipPixel(x0,y0: Word);
  1010.  
  1011. Support    : Send and process
  1012.  
  1013. Variables  : x0,y0      : Location to put pixel
  1014.  
  1015.  
  1016.  
  1017. RipLine procedure                                                     RIPlink
  1018. ─────────────────────────────────────────────────────────────────────────────
  1019. Purpose    : Draw a line
  1020.  
  1021. Declaration: RipLine(x0,y0,x1,y1: Word);
  1022.  
  1023. Support    : Send and process
  1024.  
  1025. Variables  : x0,y0      : Beginning of the line
  1026.              x1,y1      : End of the line
  1027.  
  1028.  
  1029.  
  1030. RipRectangle procedure                                                RIPlink
  1031. ─────────────────────────────────────────────────────────────────────────────
  1032. Purpose    : Draw a rectangle
  1033.  
  1034. Declaration: RipRectangle(x0,y0,x1,y1: Word);
  1035.  
  1036. Support    : Send and process
  1037.  
  1038. Variables  : x0,y0      : Upper lefthand corner of rectangle
  1039.              x1,y1      : Lower righthand corner of rectangle
  1040.  
  1041.  
  1042.  
  1043. RipBar procedure                                                      RIPlink
  1044. ─────────────────────────────────────────────────────────────────────────────
  1045. Purpose    : Draw a rectangle and fill it
  1046.  
  1047. Declaration: RipBar(x0,y0,x1,y1: Word);
  1048.  
  1049. Support    : Send and process
  1050.  
  1051. Variables  : x0,y0      : Upper lefthand corner of rectangle
  1052.              x1,y1      : Lower righthand corner of rectangle
  1053.  
  1054.  
  1055.  
  1056. ┌───────────────────────────────────────────────────────────────────────────┐
  1057. │ RIPlink - Version 1.21                                            Page 23 │
  1058. └───────────────────────────────────────────────────────────────────────────┘
  1059.  
  1060. RipCircle procedure                                                   RIPlink
  1061. ─────────────────────────────────────────────────────────────────────────────
  1062. Purpose    : Draw a circle
  1063.  
  1064. Declaration: RipCircle(x0,y0,Radius: Word);
  1065.  
  1066. Support    : Send and process
  1067.  
  1068. Variables  : x0,y0      : Center of circle
  1069.              Radius     : Length of the radius of the circle
  1070.  
  1071.  
  1072.  
  1073. RipOval procedure                                                     RIPlink
  1074. ─────────────────────────────────────────────────────────────────────────────
  1075. Purpose    : Draw an oval
  1076.  
  1077. Declaration: RipOval(x0,y0,StAngle,EndAngle,xRad,yRad: Word);
  1078.  
  1079. Support    : Send and process
  1080.  
  1081. Variables  : x0,y0      : Center of oval
  1082.              StAngle    : Starting angle (see diagram)
  1083.              EndAngle   : Ending angle (see diagram)
  1084.              xRad       : Length of horizontal axis
  1085.              yRad       : Length of vertical axis
  1086.  
  1087.                   90°
  1088.                    │
  1089.              180°──┼── 0°
  1090.                    │
  1091.                  270°
  1092.  
  1093. Notes      : A starting angle of 0 and an ending angle of 360 will draw a
  1094.              complete oval.  The angles go counter-clockwise starting at 3
  1095.              o'clock.
  1096.  
  1097.  
  1098.  
  1099. RipFilledOval procedure                                               RIPlink
  1100. ─────────────────────────────────────────────────────────────────────────────
  1101. Purpose    : Draw an oval and fill it
  1102.  
  1103. Declaration: RipFilledOval(x0,y0,xRad,yRad: Word);
  1104.  
  1105. Support    : Send and process
  1106.  
  1107. Variables  : x0,y0      : Center of oval
  1108.              xRad       : Length of horizontal axis
  1109.              yRad       : Length of vertical axis
  1110.  
  1111.  
  1112.  
  1113. ┌───────────────────────────────────────────────────────────────────────────┐
  1114. │ RIPlink - Version 1.21                                            Page 24 │
  1115. └───────────────────────────────────────────────────────────────────────────┘
  1116.  
  1117. RipArc procedure                                                      RIPlink
  1118. ─────────────────────────────────────────────────────────────────────────────
  1119. Purpose    : Draw a circular arc
  1120.  
  1121. Declaration: RipArc(x0,y0,StAngle,EndAngle,Rad: Word);
  1122.  
  1123. Support    : Send and process
  1124.  
  1125. Variables  : x0,y0      : Center of circle which the arc lies on
  1126.              StAngle    : Starting angle (see diagram in RipOval procedure)
  1127.              EndAngle   : Ending angle (see diagram in RipOval procedure)
  1128.              Rad        : Length of the radius of the circle which the arc
  1129.                           lies on
  1130.  
  1131.  
  1132.  
  1133. RipOvalArc procedure                                                  RIPlink
  1134. ─────────────────────────────────────────────────────────────────────────────
  1135. Purpose    : Draw an oval arc
  1136.  
  1137. Declaration: RipOvalArc(x0,y0,StAngle,EndAngle,xRad,yRad: Word);
  1138.  
  1139. Support    : Send and process
  1140.  
  1141. Variables  : x0,y0      : Center of oval
  1142.              StAngle    : Starting angle (see diagram in RipOval procedure)
  1143.              EndAngle   : Ending angle (see diagram in RipOval procedure)
  1144.              xRad       : Length of horizontal axis
  1145.              yRad       : Length of vertical axis
  1146.  
  1147. Notes      : This procedure is identical to the RipOval procedure.  It is
  1148.              included here for completeness.
  1149.  
  1150.  
  1151.  
  1152. RipPieSlice procedure                                                 RIPlink
  1153. ─────────────────────────────────────────────────────────────────────────────
  1154. Purpose    : Draw a pie slice
  1155.  
  1156. Declaration: RipPieSlice(x0,y0,StAngle,EndAngle,Rad: Word);
  1157.  
  1158. Support    : Send and process
  1159.  
  1160. Variables  : x0,y0      : Center of circle which the pie slice lies on
  1161.              StAngle    : Starting angle (see diagram in RipOval procedure)
  1162.              EndAngle   : Ending angle (see diagram in RipOval procedure)
  1163.              Rad        : Length of the radius of circle which the pie slice
  1164.                           lies on
  1165.  
  1166.  
  1167.  
  1168. ┌───────────────────────────────────────────────────────────────────────────┐
  1169. │ RIPlink - Version 1.21                                            Page 25 │
  1170. └───────────────────────────────────────────────────────────────────────────┘
  1171.  
  1172. RipOvalPieSlice procedure                                             RIPlink
  1173. ─────────────────────────────────────────────────────────────────────────────
  1174. Purpose    : Draw an oval pie slice
  1175.  
  1176. Declaration: RipOvalPieSlice(x0,y0,StAngle,EndAngle,RadX,RadY: Word);
  1177.  
  1178. Support    : Send and process
  1179.  
  1180. Variables  : x0,y0      : Center of circle which the pie slice lies on
  1181.              StAngle    : Starting angle (see diagram in RipOval procedure)
  1182.              EndAngle   : Ending angle (see diagram in RipOval procedure)
  1183.              RadX       : Length of horizontal axis of oval which the pie
  1184.                           slice lies on
  1185.              RadY       : Length of vertical axis of oval which the pie
  1186.                           slice lies on
  1187.  
  1188.  
  1189.  
  1190. RipBezier procedure                                                   RIPlink
  1191. ─────────────────────────────────────────────────────────────────────────────
  1192. Purpose    : Draw a bezier curve
  1193.  
  1194. Declaration: RipBezier(x0,y0,x1,y1,x2,y2,x3,y3,Count: Word);
  1195.  
  1196. Support    : Send and process
  1197.  
  1198. Variables  : x0,y0      : Beginning point of the curve
  1199.              x1,y1      : Point that pulls the curve; not necessarily on the
  1200.                           curve
  1201.              x2,y2      : Point that pulls the curve; not necessarily on the
  1202.                           curve
  1203.              x3,y3      : Ending point of the curve
  1204.              Count      : Number of segments to draw the curve with
  1205.  
  1206.  
  1207.  
  1208. RipPolygon procedure                                                  RIPlink
  1209. ─────────────────────────────────────────────────────────────────────────────
  1210. Purpose    : Draw a closed polygon
  1211.  
  1212. Declaration: RipPolygon(NumPoints: Word; Var PolyPoints);
  1213.  
  1214. Support    : Send and process
  1215.  
  1216. Variables  : NumPoints  : Number of points on the polygon
  1217.              PolyPoints : Array[1..NumPoints] of PointRec (defined under
  1218.                           Definitions: Types)
  1219.  
  1220. Notes      : PolyPoints is a variable array.  It may be anywhere from 2 to
  1221.              512 records (or points).
  1222.  
  1223.  
  1224.  
  1225. ┌───────────────────────────────────────────────────────────────────────────┐
  1226. │ RIPlink - Version 1.21                                            Page 26 │
  1227. └───────────────────────────────────────────────────────────────────────────┘
  1228.  
  1229. RipFillPoly procedure                                                 RIPlink
  1230. ─────────────────────────────────────────────────────────────────────────────
  1231. Purpose    : Draw a closed polygon and fill it
  1232.  
  1233. Declaration: RipFillPoly(NumPoints: Word; Var PolyPoints);
  1234.  
  1235. Support    : Send and process
  1236.  
  1237. Variables  : NumPoints  : Number of points on the polygon
  1238.              PolyPoints : See definition and notes under RipPolygon
  1239.  
  1240.  
  1241.  
  1242. RipPolyLine procedure                                                 RIPlink
  1243. ─────────────────────────────────────────────────────────────────────────────
  1244. Purpose    : Draw an open polygon
  1245.  
  1246. Declaration: RipPolyLine(NumPoints: Word; Var PolyPoints);
  1247.  
  1248. Support    : Send and process
  1249.  
  1250. Variables  : NumPoints  : Number of points on the polygon
  1251.              PolyPoints : See definition and notes under RipPolygon
  1252.  
  1253.  
  1254.  
  1255. RipFill procedure                                                     RIPlink
  1256. ─────────────────────────────────────────────────────────────────────────────
  1257. Purpose    : Flood fill an area
  1258.  
  1259. Declaration: RipFill(x0,y0,Border: Word);
  1260.  
  1261. Support    : Send and process
  1262.  
  1263. Variables  : x0,y0      : A point in the area to fill
  1264.              Border     : The color of the border surrounding the area to be
  1265.                           filled
  1266.  
  1267.  
  1268.  
  1269. ┌───────────────────────────────────────────────────────────────────────────┐
  1270. │ RIPlink - Version 1.21                                            Page 27 │
  1271. └───────────────────────────────────────────────────────────────────────────┘
  1272.  
  1273. RipLineStyle procedure                                                RIPlink
  1274. ─────────────────────────────────────────────────────────────────────────────
  1275. Purpose    : Set the line style, pattern, and thickness
  1276.  
  1277. Declaration: RipLineStyle(Style,Pattern,Thick: Word);
  1278.  
  1279. Support    : Send and process
  1280.  
  1281. Variables  : Style      : Line style (see chart)
  1282.              Pattern    : User defined pattern
  1283.              Thick      : Line thickness (see chart)
  1284.  
  1285.              Style   Description           Binary
  1286.              ──────────────────────────────────────────────
  1287.              00      Normal, Solid Line    1111111111111111
  1288.              01      Dotted Line           0011001100110011
  1289.              02      Centered Line         0001111000111111
  1290.              03      Dashed Line           0001111100011111
  1291.              04      Custom Defined line
  1292.  
  1293.              Thick   Description
  1294.              ───────────────────────────────
  1295.              01      Lines are 1 pixel wide
  1296.              03      Lines are 3 pixels wide
  1297.  
  1298. Notes      : If Style is 4, then the pattern is defined by the variable 
  1299.              Pattern.  Pattern is a 16-bit representation of the pattern.
  1300.  
  1301.              Repeating Pattern   Binary Coding      Decimal
  1302.              ──────────────────────────────────────────────
  1303.              - - - - - - - -     1010101010101010   43690
  1304.              ----    ----        1111000011110000   61680
  1305.  
  1306.  
  1307.  
  1308. ┌───────────────────────────────────────────────────────────────────────────┐
  1309. │ RIPlink - Version 1.21                                            Page 28 │
  1310. └───────────────────────────────────────────────────────────────────────────┘
  1311.  
  1312. RipFillStyle procedure                                                RIPlink
  1313. ─────────────────────────────────────────────────────────────────────────────
  1314. Purpose    : Set the fill style and color
  1315.  
  1316. Declaration: RipFillStyle(Style,Color: Word);
  1317.  
  1318. Support    : Send and process
  1319.  
  1320. Variables  : Style      : Fill pattern style (see chart)
  1321.              Color      : Fill color
  1322.  
  1323.              Pattern  Description                 Example       Misc
  1324.              ───────────────────────────────────────────────────────────────
  1325.                00     Fill with background color               (color #0)
  1326.                01     Solid Fill                               (fill color)
  1327.                02     Line Fill                   -----------  (thick lines)
  1328.                03     Light Slash Fill            /  /  /  /   (thin lines)
  1329.                04     Normal Slash Fill           // // // //  (thick lines)
  1330.                05     Normal Backslash Fill       \\ \\ \\ \\  (thick lines)
  1331.                06     Light Backslash Fill        \  \  \  \   (thin lines)
  1332.                07     Light Hatch Fill            ###########  (thin lines)
  1333.                08     Heavy Cross Hatch Fill      XXXXXXXXXXX  (thin lines)
  1334.                09     Interleaving Line Fill      +-+-+-+-+-+  (thin lines)
  1335.                10     Widely spaced dot fill      ' . ' . ' .  (pixels only)
  1336.                11     Closely spaced dot fill     '.'.'.'.'.'  (pixels only)
  1337.  
  1338.  
  1339.  
  1340. RipFillPattern procedure                                              RIPlink
  1341. ─────────────────────────────────────────────────────────────────────────────
  1342. Purpose    : Set a custom fill pattern and color
  1343.  
  1344. Declaration: RipFillPattern(Pattern: FPT; Color: Word);
  1345.  
  1346. Support    : Send and process
  1347.  
  1348. Variables  : Pattern    : Custom pattern (Array[1..8] of Byte)
  1349.              Color      : Fill color
  1350.  
  1351. Notes      : The custom pattern is an 8x8 square area.  Each row is one byte 
  1352.              in the array.  The pattern is bit-mapped much like the 
  1353.              RipLineStyle command above.
  1354.  
  1355.  
  1356.  
  1357. ┌───────────────────────────────────────────────────────────────────────────┐
  1358. │ RIPlink - Version 1.21                                            Page 29 │
  1359. └───────────────────────────────────────────────────────────────────────────┘
  1360.  
  1361. RipMouse procedure                                                    RIPlink
  1362. ─────────────────────────────────────────────────────────────────────────────
  1363. Purpose    : Define a mouse region
  1364.  
  1365. Declaration: RipMouse(x0,y0,x1,y1: Word; Click,Clear: Boolean;
  1366.              InStr: String);
  1367.  
  1368. Support    : Send and process
  1369.  
  1370. Variables  : x0,y0      : Upper lefthand corner of region
  1371.              x1,y1      : Lower righthand corner of region
  1372.              Click      : Invert the region when clicked?
  1373.              Clear      : Clear screen when clicked?
  1374.              InStr      : String to send when region is clicked
  1375.  
  1376.  
  1377.  
  1378. RipKillMouseFields procedures                                         RIPlink
  1379. ─────────────────────────────────────────────────────────────────────────────
  1380. Purpose    : Kill all mouse regions
  1381.  
  1382. Declaration: RipKillMouseFields;
  1383.  
  1384. Support    : Send and process
  1385.  
  1386.  
  1387.  
  1388. RipBeginText procedure                                                RIPlink
  1389. ─────────────────────────────────────────────────────────────────────────────
  1390. Purpose    : Begin a text region
  1391.  
  1392. Declaration: RipBeginText(x0,y0,x1,y1: Word);
  1393.  
  1394. Support    : Send only
  1395.  
  1396. Variables  : x0,y0      : Upper lefthand corner of text region
  1397.              x1,y1      : Lower righthand corner of text region
  1398.  
  1399. Notes      : This command defines a region on the view port for text.  This
  1400.              is usually used for long streams of text.  Following this
  1401.              command should be one or more RipRegionText commands followed by 
  1402.              a RipEndText command.
  1403.  
  1404.  
  1405.  
  1406. ┌───────────────────────────────────────────────────────────────────────────┐
  1407. │ RIPlink - Version 1.21                                            Page 30 │
  1408. └───────────────────────────────────────────────────────────────────────────┘
  1409.  
  1410. RipRegionText procedure                                               RIPlink
  1411. ─────────────────────────────────────────────────────────────────────────────
  1412. Purpose    : Put text in the current text region
  1413.  
  1414. Declaration: RipRegionText(Justify: Boolean; InStr: String);
  1415.  
  1416. Support    : Send only
  1417.  
  1418. Variables  : Justify    : Do left/righthand justification?
  1419.              InStr      : String to write in the text region
  1420.  
  1421.  
  1422.  
  1423. RipEndText procedure                                                  RIPlink
  1424. ─────────────────────────────────────────────────────────────────────────────
  1425. Purpose    : End the current text region
  1426.  
  1427. Declaration: RipEndText;
  1428.  
  1429. Support    : Send only
  1430.  
  1431.  
  1432.  
  1433. RipGetImage procedure                                                 RIPlink
  1434. ─────────────────────────────────────────────────────────────────────────────
  1435. Purpose    : Get an image from the screen and place it in the clipboard (CB)
  1436.  
  1437. Declaration: RipGetImage(x0,y0,x1,y1: Word);
  1438.  
  1439. Support    : Send and process
  1440.  
  1441. Variables  : x0,y0      : Upper lefthand corner of image
  1442.              x1,y1      : Lower righthand corner of image
  1443.  
  1444.  
  1445.  
  1446. RipPutImage procedure                                                 RIPlink
  1447. ─────────────────────────────────────────────────────────────────────────────
  1448. Purpose    : Move the image in the CB to the screen
  1449.  
  1450. Declaration: RipPutImage(x0,y0,Mode: Word);
  1451.  
  1452. Support    : Send and process
  1453.  
  1454. Variables  : x0,y0      : Upper lefthand corner of image
  1455.              Mode       : Mode to paste image onto screen with (see chart)
  1456.  
  1457.              Mode Description                                        Logical
  1458.              ───────────────────────────────────────────────────────────────
  1459.               00  Paste the image on-screen normally                  (COPY)
  1460.               01  Exclusive-OR  image with the one already on screen  (XOR)
  1461.               02  Logically OR  image with the one already on screen  (OR)
  1462.               03  Logically AND image with the one already on screen  (AND)
  1463.               04  Paste the inverse of the image on the screen        (NOT)
  1464.  
  1465.  
  1466.  
  1467. ┌───────────────────────────────────────────────────────────────────────────┐
  1468. │ RIPlink - Version 1.21                                            Page 31 │
  1469. └───────────────────────────────────────────────────────────────────────────┘
  1470.  
  1471. RipWriteIcon procedure                                                RIPlink
  1472. ─────────────────────────────────────────────────────────────────────────────
  1473. Purpose    : Write the image in the CB to disk
  1474.  
  1475. Declaration: RipWriteIcon(FName: Str12);
  1476.  
  1477. Support    : Send and process
  1478.  
  1479. Variables  : FName      : Icon name (with extension)
  1480.  
  1481. Notes      : This will override an icon with the same name if one exists.
  1482.  
  1483.  
  1484.  
  1485. RipLoadIcon procedure                                                 RIPlink
  1486. ─────────────────────────────────────────────────────────────────────────────
  1487. Purpose    : Load icon from disk, paste to screen, and optionally paste to CB
  1488.  
  1489. Declaration: RipLoadIcon(x0,y0,Mode: Word; ClipBrd: Boolean; FName: Str12);
  1490.  
  1491. Support    : Send and process
  1492.  
  1493. Variables  : x0,y0      : Upper lefthand corner of image
  1494.              Mode       : Mode to paste image with (see chart in RipPutImage)
  1495.              ClipBrd    : Put the image into the clipboard?
  1496.              FName      : Icon name
  1497.  
  1498.  
  1499.  
  1500. ┌───────────────────────────────────────────────────────────────────────────┐
  1501. │ RIPlink - Version 1.21                                            Page 32 │
  1502. └───────────────────────────────────────────────────────────────────────────┘
  1503.  
  1504. RipButtonStyle procedure                                              RIPlink
  1505. ─────────────────────────────────────────────────────────────────────────────
  1506. Purpose    : Define the button style
  1507.  
  1508. Declaration: RipButtonStyle(Wid,Hgt,Orient,Flags,BevSize,DFore,DBack,Bright,
  1509.              Dark,Surface,Grp_No,Flags2,ULine_Col,Corner_Col: Word);
  1510.  
  1511. Support    : Send and process
  1512.  
  1513. Variables  : Wid        : Width of a plain button
  1514.              Hgt        : Height of a plain button
  1515.              Orient     : Orientation of button label (see chart)
  1516.              Flags      : Flags 1 (see chart)
  1517.              BevSize    : Size of bevel (if enabled)
  1518.              DFore      : Text foreground color
  1519.              DBack      : Dropshadow color
  1520.              Bright     : Hi-lighted color
  1521.              Dark       : Shadowed color
  1522.              Surface    : Button surface color
  1523.              Grp_No     : Group Number
  1524.              Flags2     : Flags 2 (see chart)
  1525.              ULine_Col  : Underline color
  1526.              Corner_Col : Corner color
  1527.  
  1528.              Value   Description of Orientation
  1529.              ─────────────────────────────────────────────────
  1530.               00     Display label above button
  1531.               01     Display label to the left of button
  1532.               02     Display label in the center of the button
  1533.               03     Display label to the right of button
  1534.               04     Display label beneath the button
  1535.  
  1536.              Value   Description of Flags Field #1
  1537.              ─────────────────────────────────────────
  1538.                  1   Button is a "Clipboard Button"
  1539.                  2   Button is "Invertable"
  1540.                  4   Reset screen after button click
  1541.                  8   Display Chisel special effect
  1542.                 16   Display Recessed special effect
  1543.                 32   Dropshadow the label (if any)
  1544.                 64   Auto-stamp image onto Clipboard
  1545.                128   Button is an "Icon Button"
  1546.                256   Button is a "Plain Button"
  1547.                512   Display Bevel special effect
  1548.               1024   Button is a Mouse Button
  1549.               2048   Underline hot-key in label
  1550.               4096   Make Icon Button use Hot Icons
  1551.               8192   Adj. vertical centering of label
  1552.              16384   Button belongs to a Radio Group
  1553.              32768   Display Sunken special effect
  1554.  
  1555.  
  1556.  
  1557. ┌───────────────────────────────────────────────────────────────────────────┐
  1558. │ RIPlink - Version 1.21                                            Page 33 │
  1559. └───────────────────────────────────────────────────────────────────────────┘
  1560.  
  1561.              Value Description of Flags Field #2
  1562.              ─────────────────────────────────────────
  1563.                  1   Button is in a check box group
  1564.                  2   Highlight hotkey character
  1565.                  4   Explode (zoom out when clicked)
  1566.                  8   Left Justify Label (top/ctr/btm)
  1567.                 16   Right Justify Label (top/ctr/btm)
  1568.  
  1569. Notes      : Flags1 and Flags2 are bitmapped.  As such, you may add values
  1570.              together to get the desired combination.
  1571.  
  1572.  
  1573.  
  1574. ┌───────────────────────────────────────────────────────────────────────────┐
  1575. │ RIPlink - Version 1.21                                            Page 34 │
  1576. └───────────────────────────────────────────────────────────────────────────┘
  1577.  
  1578. RipButton procedure                                                   RIPlink
  1579. ─────────────────────────────────────────────────────────────────────────────
  1580. Purpose    : Draw a button
  1581.  
  1582. Declaration: RipButton(x0,y0,x1,y1,HotKey: Word; Flags: Byte; Icon: Str12;
  1583.              sLabel: String; Cmd: String);
  1584.  
  1585. Support    : Send and process
  1586.  
  1587. Variables  : x0,y0      : Upper lefthand corner of the button
  1588.              x1,y1      : Lower righthand corner of the button
  1589.              HotKey     : ASCII value of hotkey character for this button
  1590.                           (If this is a letter, it should be uppercase)
  1591.              Flags      : Flags (see chart)
  1592.              Icon       : Name of icon (if any)
  1593.              sLabel     : Button Label (if any)
  1594.              Cmd        : Command for terminal to return when this button is
  1595.                           selected
  1596.  
  1597.              Value  Description
  1598.              ──────────────────────────────────────────────────
  1599.                1    Draw button as already selected
  1600.                2    Button is "default" when <ENTER> is pressed
  1601.  
  1602. Notes      : Flags is a bitmapped field.
  1603.  
  1604.  
  1605.  
  1606. RipDefine procedure                                                   RIPlink
  1607. ─────────────────────────────────────────────────────────────────────────────
  1608. Purpose    : Define a text variable
  1609.  
  1610. Declaration: RipDefine(Flags: Word; TextVar: Str12; Width: Byte;
  1611.              Ques,Default: String);
  1612.  
  1613. Support    : Send only
  1614.  
  1615. Variables  : Flags      : Flags (see chart)
  1616.              TextVar    : Variable Identifier
  1617.              Width      : Variable Length
  1618.              Ques       : Question to prompt user with
  1619.              Default    : Default answer (if any)
  1620.  
  1621.              Value  Description
  1622.              ──────────────────────────────────────
  1623.              01     Save Variable to database
  1624.              02     Cannot specify a blank response
  1625.              04     Non-interactive query
  1626.  
  1627. Notes      : Flags is a bitmapped field.
  1628.  
  1629.  
  1630.  
  1631. ┌───────────────────────────────────────────────────────────────────────────┐
  1632. │ RIPlink - Version 1.21                                            Page 35 │
  1633. └───────────────────────────────────────────────────────────────────────────┘
  1634.  
  1635. RipQuery procedure                                                    RIPlink
  1636. ─────────────────────────────────────────────────────────────────────────────
  1637. Purpose    : Query user for a text variable
  1638.  
  1639. Declaration: RipQuery(Mode: Byte; InStr: String);
  1640.  
  1641. Support    : Send only
  1642.  
  1643. Variables  : Mode       : Query Mode (see chart)
  1644.              InStr      : Query prompt (see Notes)
  1645.  
  1646.              Mode  Description
  1647.              ───────────────────────────────────────────────────────────
  1648.               0    Process the query command NOW (upon receipt)
  1649.               1    Process when mouse clicked in Graphics Window
  1650.               2    Process when mouse clicked in Text Window (any text
  1651.                    variables that return X or Y mouse coordinates return
  1652.                    TEXT coordinates, not graphics coordinates in this
  1653.                    mode.  These coordinates are two-digit values instead
  1654.                    of the graphical values that are four digits).
  1655.  
  1656. Notes      : Due to the various possibilities of this command, it is
  1657.              suggested that you read about it in the RIPscrip document.
  1658.              However, it's briefly explained here.  InStr includes a question
  1659.              or statement and a text variable.  It might look like this: 'My 
  1660.              name is $FULL_NAME$.'  If the text variable $FULL_NAME$ 
  1661.              contained 'John Doe' then the result would be something like: 
  1662.              'My name is John Doe.'
  1663.  
  1664.  
  1665.  
  1666. RipCopyRegion procedure                                               RIPlink
  1667. ─────────────────────────────────────────────────────────────────────────────
  1668. Purpose    : Copy a region on the screen up or down
  1669.  
  1670. Declaration: RipCopyRegion(x0,y0,x1,y1,DestLine: Word);
  1671.  
  1672. Support    : Send only
  1673.  
  1674. Variables  : x0,y0      : Upper lefthand corner of region
  1675.              x1,y1      : Lower righthand corner of region
  1676.              DestLine   : New Y scan line to copy image to
  1677.  
  1678. Notes      : This command copies the specified region up or down.  It does 
  1679.              not clear the original image.  This command does not adhere to 
  1680.              the limitations imposed by the view port.  It will work anywhere 
  1681.              on the screen.
  1682.  
  1683.  
  1684.  
  1685. ┌───────────────────────────────────────────────────────────────────────────┐
  1686. │ RIPlink - Version 1.21                                            Page 36 │
  1687. └───────────────────────────────────────────────────────────────────────────┘
  1688.  
  1689. RipReadScene procedure                                                RIPlink
  1690. ─────────────────────────────────────────────────────────────────────────────
  1691. Purpose    : Display/process a RIP file
  1692.  
  1693. Declaration: RipReadScene(FName: Str12);
  1694.  
  1695. Support    : Send only
  1696.  
  1697. Variables  : FNames     : RIP file name
  1698.  
  1699.  
  1700.  
  1701. RipFileQuery procedure                                                RIPlink
  1702. ─────────────────────────────────────────────────────────────────────────────
  1703. Purpose    : Get information of a file (usually an icon file)
  1704.  
  1705. Declaration: RipFileQuery(Mode: Word; FName: Str12);
  1706.  
  1707. Support    : Send only
  1708.  
  1709. Variables  : Mode       : Query mode (see chart)
  1710.              FName      : Name of file to get information about
  1711.  
  1712.              Mode  Description
  1713.              ─────────────────────────────────────────────────
  1714.               00   Simply query the existence of the file.  If it exists, a
  1715.                    "1" is returned.  Otherwise a "0" is returned to the Host
  1716.                    (without a carriage return).
  1717.               01   Same as 0, except a carriage return is added after the
  1718.                    response.
  1719.               02   Queries the existence of a file.  If it does not exist, a
  1720.                    "0" is returned to the Host followed by a carriage
  1721.                    return.  If it does exist, the returned text is a "1."
  1722.                    followed by the file size (in decimal).  The return
  1723.                    sequence is terminated by a carriage return.  An example
  1724.                    of the returned text could be "1.21345".
  1725.               03   Queries extended return information.  If the file does
  1726.                    not exist, a "0" is returned followed by a carriage
  1727.                    return.  If it does exist, the text returned to the Host
  1728.                    is in the Format: 1.size.date.time <cr>.  An example of a
  1729.                    return statement could be "1.21345.01/02/93.03:04:30<cr>"
  1730.               04   Queries extended return information.  If the file does
  1731.                    not exist, a "0" is returned followed by a carriage
  1732.                    return.  If it does exist, the text returned to the Host
  1733.                    is in the Format: 1.filename.size.date.time <cr>. An
  1734.                    example of a return statement could be
  1735.                    "1.MYFILE.RIP.20345.01/02/93.03:04:30 <cr>".  Note that
  1736.                    the file extension adds another period into the return
  1737.                    text.
  1738.  
  1739. Notes      : You must check for the return information and deal with it
  1740.              yourself.
  1741.  
  1742.  
  1743.  
  1744. ┌───────────────────────────────────────────────────────────────────────────┐
  1745. │ RIPlink - Version 1.21                                            Page 37 │
  1746. └───────────────────────────────────────────────────────────────────────────┘
  1747.  
  1748. RipEnterBlockMode procedure                                           RIPlink
  1749. ─────────────────────────────────────────────────────────────────────────────
  1750. Purpose    : Enter file transfer mode with the remote system
  1751.  
  1752. Declaration: RipEnterBlockMode(UL: Boolean; Proto,FType: Word;
  1753.              FName: Str12);
  1754.  
  1755. Support    : Send only
  1756.  
  1757. Variables  : UL         : True: Upload; False: Download
  1758.              Proto      : Protocol to use (see chart)
  1759.              FType      : Transfer Type (see chart)
  1760.              FName      : FileName (if UL, Xmodem, or Kermit)
  1761.  
  1762.              Value   Protocol            Filename Required?
  1763.              ──────────────────────────────────────────────
  1764.                0     Xmodem (checksum)          Yes
  1765.                1     Xmodem (CRC)               Yes
  1766.                2     Xmodem-1K                  Yes
  1767.                3     Xmodem-1K (G)              Yes
  1768.                4     Kermit                     Yes
  1769.                5     Ymodem (batch)             No
  1770.                6     Ymodem-G                   No
  1771.                7     Zmodem (crash recovery)    No
  1772.  
  1773.              Value   Description of Block Transfer Contents
  1774.              ──────────────────────────────────────────────────────────────
  1775.                0     RIP file sequence (display it)
  1776.                1     RIP file sequence (store them)
  1777.                2     ICN file sequence (store them in proper directories)
  1778.                3     HLP file sequence (store it, and auto-load if needed)
  1779.                4     COMPOSITE DYNAMIC file sequence (batch protocols only)
  1780.                5     ACTIVE DYNAMIC file sequence (batch protocols only)
  1781.  
  1782. Notes      : Composite Dynamic and Active Dynamic modes process the files 
  1783.              based on file extension.  They will only work for .RIP and .ICN 
  1784.              files though.  Composite just stores the files while Active
  1785.              stores and displays the .RIP files.
  1786.  
  1787.  
  1788.  
  1789. RipNoMore procedure                                                   RIPlink
  1790. ─────────────────────────────────────────────────────────────────────────────
  1791. Purpose    : End a RIP sequence
  1792.  
  1793. Declaration: RipNoMore;
  1794.  
  1795. Support    : Send and process
  1796.  
  1797. Notes      : This procedure will send 3 NoMore sequences to the remote as
  1798.              suggested by the RIPscrip specification.
  1799.  
  1800.  
  1801.  
  1802. ┌───────────────────────────────────────────────────────────────────────────┐
  1803. │ RIPlink - Version 1.21                                            Page 38 │
  1804. └───────────────────────────────────────────────────────────────────────────┘
  1805.  
  1806. SendStr procedure                                                     RIPlink
  1807. ─────────────────────────────────────────────────────────────────────────────
  1808. Purpose    : A procedure to be overwritten to work with your comm routines
  1809.  
  1810. Declaration: SendStr(InStr : String);
  1811.  
  1812. Notes      : An undefined procedure designed to be overwritten.  See the
  1813.              example door provided.
  1814.  
  1815.  
  1816.  
  1817. SendStrCR procedure                                                   RIPlink
  1818. ─────────────────────────────────────────────────────────────────────────────
  1819. Purpose    : A procedure to be overwritten to work with your comm routines
  1820.  
  1821. Declaration: SendStrCR(InStr : String);
  1822.  
  1823. Notes      : An undefined procedure designed to be overwritten.  See the
  1824.              example door provided.
  1825.  
  1826.  
  1827.  
  1828. StatLine procedure                                                    RIPlink
  1829. ─────────────────────────────────────────────────────────────────────────────
  1830. Purpose    : Display a status line
  1831.  
  1832. Declaration: StatLine;
  1833.  
  1834. Notes      : This should be called after RipObj.StatText is (re)set.
  1835.  
  1836.  
  1837.  
  1838. Done destructor                                                       RIPlink
  1839. ─────────────────────────────────────────────────────────────────────────────
  1840. Purpose    : End the RIPlink processor
  1841.  
  1842. Declaration: Done;
  1843.  
  1844. Notes      : Cleans up.  Use when ending your program.  Returns to text mode,
  1845.              etc.
  1846.  
  1847.  
  1848.  
  1849. ┌───────────────────────────────────────────────────────────────────────────┐
  1850. │ RIPlink - Version 1.21                                            Page 39 │
  1851. └───────────────────────────────────────────────────────────────────────────┘
  1852.  
  1853. DisplayRIPfile function                                               RIPlink
  1854. ─────────────────────────────────────────────────────────────────────────────
  1855. Purpose    : Display a RIP file.
  1856.  
  1857. Declaration: DisplayRIPfile(Path: String): Boolean;
  1858.  
  1859. Returns    : True: File existed; False: File did not exist
  1860.  
  1861. Variables  : Path       : Full path and name of .RIP file to display
  1862.  
  1863. Notes      : This procedure calls ParseRip for each character.  You may
  1864.              choose to write your own processor if this one does not suit
  1865.              your needs.
  1866.  
  1867.  
  1868.  
  1869. ParseRipStr procedure                                                 RIPlink
  1870. ─────────────────────────────────────────────────────────────────────────────
  1871. Purpose    : Parses a RIPscrip sequence
  1872.  
  1873. Declaration: ParseRip(S: Char; SendChar: Boolean);
  1874.  
  1875. Variables  : S          : String to parse
  1876.              SendChar   : Send this string out the port?
  1877.  
  1878. Notes      : This procedures calls ParseRip for each character in the string.
  1879.  
  1880.  
  1881.  
  1882. ParseRip procedure                                                    RIPlink
  1883. ─────────────────────────────────────────────────────────────────────────────
  1884. Purpose    : Parse next character in a RIPscrip sequence
  1885.  
  1886. Declaration: ParseRip(C: Char; SendChar: Boolean);
  1887.  
  1888. Variables  : C          : Character to parse
  1889.              SendChar   : Send this character out the port?
  1890.  
  1891.  
  1892.  
  1893. DoTextStr procedure                                                   RIPlink
  1894. ─────────────────────────────────────────────────────────────────────────────
  1895. Purpose    : Send a string to the Text Window
  1896.  
  1897. Declaration: DoTextStr(S: String);
  1898.  
  1899. Variables  : S          : String to send to window
  1900.  
  1901. Notes      : This procedure calls DoTextChar for each character in the
  1902.              string.
  1903.  
  1904.  
  1905.  
  1906. ┌───────────────────────────────────────────────────────────────────────────┐
  1907. │ RIPlink - Version 1.21                                            Page 40 │
  1908. └───────────────────────────────────────────────────────────────────────────┘
  1909.  
  1910. DoTextChar procedure                                                  RIPlink
  1911. ─────────────────────────────────────────────────────────────────────────────
  1912. Purpose    : Send a character to the Text Window
  1913.  
  1914. Declaration: DoTextChar(C: Char);
  1915.  
  1916. Variables  : C          : Character to send to window
  1917.  
  1918.  
  1919.  
  1920. MouseInit procedure                                                   RIPlink
  1921. ─────────────────────────────────────────────────────────────────────────────
  1922. Purpose    : Initialize Mouse
  1923.  
  1924. Declaration: MouseInit;
  1925.  
  1926. Notes      : This procedure is automatically called by Init.
  1927.  
  1928.  
  1929.  
  1930. MouseOn procedure                                                     RIPlink
  1931. ─────────────────────────────────────────────────────────────────────────────
  1932. Purpose    : Turn on the Mouse Cursor
  1933.  
  1934. Declaration: MouseOn;
  1935.  
  1936. Notes      : This will turn on the mouse cursor regardless of how many times
  1937.              MouseOff has been called.
  1938.  
  1939.  
  1940.  
  1941. MouseOff procedure                                                    RIPlink
  1942. ─────────────────────────────────────────────────────────────────────────────
  1943. Purpose    : Turn off the Mouse Cursor
  1944.  
  1945. Declaration: MouseOff;
  1946.  
  1947. Notes      : This will turn off the mouse cursor regardless of how many times
  1948.              MouseOn has been called.
  1949.  
  1950.  
  1951.  
  1952. GetPosition procedure                                                 RIPlink
  1953. ─────────────────────────────────────────────────────────────────────────────
  1954. Purpose    : Returns location and button status of the mouse
  1955.  
  1956. Declaration: GetPosition(var ButtonStatus,xPos,yPos: Integer);
  1957.  
  1958. Variables  : ButtonStatus : Which buttons are currently down
  1959.              xPos,yPos    : X and Y position of the mouse cursor
  1960.  
  1961.  
  1962.  
  1963. ┌───────────────────────────────────────────────────────────────────────────┐
  1964. │ RIPlink - Version 1.21                                            Page 41 │
  1965. └───────────────────────────────────────────────────────────────────────────┘
  1966.  
  1967. SetMousePos procedure                                                 RIPlink
  1968. ─────────────────────────────────────────────────────────────────────────────
  1969. Purpose    : Relocate the mouse cursor
  1970.  
  1971. Declaration: SetMousePos(x,y: Integer);
  1972.  
  1973. Variables  : x,y        : New location for the mouse cursor
  1974.  
  1975.  
  1976.  
  1977. CheckMouse procedure                                                  RIPlink
  1978. ─────────────────────────────────────────────────────────────────────────────
  1979. Purpose    : Update internal variables and process buttons
  1980.  
  1981. Declaration: CheckMouse;
  1982.  
  1983. Notes      : This procedure must be called regularly in your GetChar routine.
  1984.              It will check the mouse buttons, invert buttons as necessary,
  1985.              and put strings resulting from clicked buttons into a buffer.
  1986.  
  1987.  
  1988.  
  1989. AddRegion procedure                                                   RIPlink
  1990. ─────────────────────────────────────────────────────────────────────────────
  1991. Purpose    : Add a mouse region to the internal stack of regions
  1992.  
  1993. Declaration: AddRegion(x0,y0,x1,y1: Word; Invert,Reset: Boolean;
  1994.              TheText: Str50);
  1995.  
  1996. Variables  : x0,y0      : Upper lefthand coordinates of the region
  1997.              x1,y1      : Lower righthand coordinates of the region
  1998.              Invert     : Invert this button when clicked?
  1999.              Reset      : Reset screen when mouse button released?
  2000.                           (Not currently implemented)
  2001.              TheText    : String to place into buffer when button is clicked
  2002.  
  2003. Notes      : This procedure is primarily intended for internal use and is
  2004.              only documented in case you might need it.
  2005.  
  2006.  
  2007.  
  2008. CharInBuffer function                                                 RIPlink
  2009. ─────────────────────────────────────────────────────────────────────────────
  2010. Purpose    : To determine if there is a character in the mouse buffer
  2011.  
  2012. Declaration: CharInBuffer: Boolean;
  2013.  
  2014. Returns    : True if there are one or more characters in the buffer
  2015.  
  2016. Notes      : This function is designed to be included in your GetChar routine
  2017.              to allow it to know when to call GetNextChar (see below.)
  2018.  
  2019.  
  2020.  
  2021. ┌───────────────────────────────────────────────────────────────────────────┐
  2022. │ RIPlink - Version 1.21                                            Page 42 │
  2023. └───────────────────────────────────────────────────────────────────────────┘
  2024.  
  2025. GetNextChar function                                                  RIPlink
  2026. ─────────────────────────────────────────────────────────────────────────────
  2027. Purpose    : Return next character in the mouse buffer
  2028.  
  2029. Declaration: GetNextChar: Char;
  2030.  
  2031. Returns    : Next character from the mouse buffer
  2032.  
  2033. Notes      : This function is also intended to be included in your GetChar
  2034.              routine.
  2035.  
  2036.  
  2037.  
  2038. KillRegions procedure                                                 RIPlink
  2039. ─────────────────────────────────────────────────────────────────────────────
  2040. Purpose    : Kill the internal list of regions
  2041.  
  2042. Declaration: KillRegions;
  2043.  
  2044. Notes      : Primarily intended for internal use.
  2045.  
  2046.  
  2047.  
  2048. KillBuffer procedure                                                  RIPlink
  2049. ─────────────────────────────────────────────────────────────────────────────
  2050. Purpose    : Kill the internal mouse buffer
  2051.  
  2052. Declaration: KillBuffer;
  2053.  
  2054. Notes      : Primarily intended for internal use.
  2055.  
  2056.  
  2057.  
  2058. IntToStr function                                                    RIPlink1
  2059. ─────────────────────────────────────────────────────────────────────────────
  2060. Purpose    : Convert an integer-type to a string
  2061.  
  2062. Declaration: IntToStr(I: LongInt): String;
  2063.  
  2064. Returns    : String representation of the integer-type
  2065.  
  2066. Variables  : I          : Integer-type number
  2067.  
  2068.  
  2069.  
  2070. ┌───────────────────────────────────────────────────────────────────────────┐
  2071. │ RIPlink - Version 1.21                                            Page 43 │
  2072. └───────────────────────────────────────────────────────────────────────────┘
  2073.  
  2074. StrToInt function                                                    RIPlink1
  2075. ─────────────────────────────────────────────────────────────────────────────
  2076. Purpose    : Convert a string to an integer-type
  2077.  
  2078. Declaration: StrToInt(S: String): LongInt;
  2079.  
  2080. Returns    : Integer-type representation of the string; 0 if string is
  2081.              invalid
  2082.  
  2083. Variables  : S          : String to convert
  2084.  
  2085.  
  2086.  
  2087. BackSlash function                                                   RIPlink1
  2088. ─────────────────────────────────────────────────────────────────────────────
  2089. Purpose    : Append a backslash to a string if it does not exist
  2090.  
  2091. Declaration: BackSlash(InString: String): String;
  2092.  
  2093. Returns    : String with a backslash
  2094.  
  2095. Variables  : InString   : String to append a backslash to
  2096.  
  2097.  
  2098.  
  2099. Exists function                                                      RIPlink1
  2100. ─────────────────────────────────────────────────────────────────────────────
  2101. Purpose    : Check to see if a file exists
  2102.  
  2103. Declaration: Exists(FN: String): Boolean;
  2104.  
  2105. Returns    : True if file exists
  2106.  
  2107. Variables  : FN         : Full path and name of file to check
  2108.  
  2109.  
  2110.  
  2111. WordToMega function                                                  RIPlink1
  2112. ─────────────────────────────────────────────────────────────────────────────
  2113. Purpose    : Convert a Word to a MegaNum
  2114.  
  2115. Declaration: WordToMega(Num: Word): Str2;
  2116.  
  2117. Returns    : 2 Digit MegaNum
  2118.  
  2119. Variables  : Num        : Decimal number to convert
  2120.  
  2121. Notes      : A MegaNum is RIPscrip's number format.  This function is mostly 
  2122.              used internally to RIPlink, but is provided here in case you 
  2123.              find a use for it.  Note that the word must not be larger at 
  2124.              1295 as that is the maximum for a 2 digit meganum.  If your word 
  2125.              is 1296 or larger, use the WordToMega4 function described below.
  2126.  
  2127.  
  2128.  
  2129. ┌───────────────────────────────────────────────────────────────────────────┐
  2130. │ RIPlink - Version 1.21                                            Page 44 │
  2131. └───────────────────────────────────────────────────────────────────────────┘
  2132.  
  2133. WordToMega4 function                                                 RIPlink1
  2134. ─────────────────────────────────────────────────────────────────────────────
  2135. Purpose    : Convert a Word to a 4 digit MegaNum
  2136.  
  2137. Declaration: WordToMega4(Num: Word): Str4;
  2138.  
  2139. Returns    : 4 Digit MegaNum
  2140.  
  2141. Variables  : Num        : Decimal number to convert
  2142.  
  2143. Notes      : This function operates just like the WordToMega function.  The
  2144.              only difference is in the length of the meganum returned.
  2145.  
  2146.  
  2147.  
  2148. MegaToWord function                                                  RIPlink1
  2149. ─────────────────────────────────────────────────────────────────────────────
  2150. Purpose    : Convert a MegaNum to a Word
  2151.  
  2152. Declaration: MegaToWord(S2: Str2): Word;
  2153.  
  2154. Returns    : Word
  2155.  
  2156. Variables  : S2         : 2 Digit MegaNum
  2157.  
  2158. Notes      : This function turns a 2 digit meganum into a word.
  2159.  
  2160.  
  2161.  
  2162. Mega4ToLong function                                                 RIPlink1
  2163. ─────────────────────────────────────────────────────────────────────────────
  2164. Purpose    : Convert a 4 digit MegaNum to a Longint
  2165.  
  2166. Declaration: Mega4ToLong(S4: Str4): Longint;
  2167.  
  2168. Returns    : Longint
  2169.  
  2170. Variables  : S4         : 4 Digit MegaNum
  2171.  
  2172. Notes      : This takes a 4 digit meganum and turns it into a longint.
  2173.  
  2174.  
  2175.  
  2176. ┌───────────────────────────────────────────────────────────────────────────┐
  2177. │ RIPlink - Version 1.21                                            Page 45 │
  2178. └───────────────────────────────────────────────────────────────────────────┘
  2179.  
  2180. ┌───────────────────────────────────────────────────────────────────────────┐
  2181. │░░░▒▒▒▓▓▓███              Programming Suggestions              ███▓▓▓▒▒▒░░░│
  2182. └───────────────────────────────────────────────────────────────────────────┘
  2183.  
  2184. It is suggested that you include a reference in your documentation that
  2185. RIPscrip currently only supports EGA or above graphics.  This will hopefully
  2186. eliminate the possibility of people with CGA or Mono monitors who can't seem
  2187. to make the RIP graphics work <grin>.  RIPlink will still send out RIP codes
  2188. to the user, of course.
  2189.  
  2190. Use the internal RIPXxxxx procedures when possible.  Whereas the Rip Parser
  2191. works just fine, it is a bit slower and has the potential to take vast
  2192. amounts of .EXE space.
  2193.  
  2194.  
  2195.  
  2196. ┌───────────────────────────────────────────────────────────────────────────┐
  2197. │░░░▒▒▒▓▓▓███           Comments from InterProgramming          ███▓▓▓▒▒▒░░░│
  2198. └───────────────────────────────────────────────────────────────────────────┘
  2199.  
  2200. We hope you enjoy this product.  It has increased registrations of our 
  2201. products substantially, and we hope it does the same for you.  Also, to any
  2202. door author who is interested:  Send us a registered copy of your door and
  2203. we'll put it up on our board for others to see and use.  And, if you send
  2204. us a distribution copy, we'll make it available for download and Freq.  As 
  2205. mentioned above, RIPlink doesn't fully support everything specified by the 
  2206. RIPscrip standard.  Continued additions to RIPlink are in progress to bring 
  2207. RIPlink closer to fully supporting the evolving RIPscrip standard. 
  2208.  
  2209.  
  2210. ┌───────────────────────────────────────────────────────────────────────────┐
  2211. │ RIPlink - Version 1.21                                            Page 46 │
  2212. └───────────────────────────────────────────────────────────────────────────┘
  2213.  
  2214. ┌───────────────────────────────────────────────────────────────────────────┐
  2215. │░░░▒▒▒▓▓▓███                      Credits                      ███▓▓▓▒▒▒░░░│
  2216. └───────────────────────────────────────────────────────────────────────────┘
  2217.  
  2218. Deepest thanks and gratitude goes to:
  2219.  
  2220. Jesus Christ for making the ultimate sacrifice of death for each and every 
  2221.  one of us.  And, for giving us the benefit of that sacrifice, the
  2222.  opportunity to spend eternity in heaven with him, as a free gift which can
  2223.  not be bought, only accepted.
  2224.  
  2225. Special thanks also goes out to the following people:
  2226.  
  2227. John Tucker for his support, particularly when first developing RIPlink.
  2228.  
  2229. Jason Niver for his tremendous help with many projects and always being 
  2230.  around to help.
  2231.  
  2232. Jason Trowbridge for just being there, for providing input and comments on
  2233.  RIPlink, and for assisting with the mouse support.
  2234.  
  2235. Michael Welling for his assistance in making RIPlink available for TP 5.5.
  2236.  
  2237. Casey Robinson and Jason Percival for sending along code to do the Bezier
  2238.  curve.
  2239.  
  2240. And last, but not least, those individuals who sent us messages stating their 
  2241.  interest in this product before it was available, or even known about.
  2242.  
  2243.      You were all instrumental in making RIPlink what it is.
  2244.  
  2245.                        THANKS GUYS!
  2246.  
  2247.  
  2248.  
  2249. ┌───────────────────────────────────────────────────────────────────────────┐
  2250. │ RIPlink - Version 1.21                                            Page 47 │
  2251. └───────────────────────────────────────────────────────────────────────────┘
  2252.  
  2253. ┌───────────────────────────────────────────────────────────────────────────┐
  2254. │░░░▒▒▒▓▓▓███                 Index to Methods                  ███▓▓▓▒▒▒░░░│
  2255. └───────────────────────────────────────────────────────────────────────────┘
  2256.  
  2257.         Method Name           Page        Method Name           Page
  2258.         ──────────────────   ──────       ──────────────────   ──────
  2259.         AddRegion              41         RipFillPoly            26
  2260.         BackSlash              43         RipFillStyle           28
  2261.         CharInBuffer           41         RipFontStyle           21
  2262.         CheckMouse             41         RipGetImage            30
  2263.         DisplayRIPfile         39         RipGotoXY              17
  2264.         Done                   38         RipHome                18
  2265.         DoTextChar             40         RipKillMouseFields     29
  2266.         DoTextStr              39         RipLine                22
  2267.         Exists                 43         RipLineStyle           27
  2268.         GetNextChar            42         RipLoadIcon            31
  2269.         GetPosition            40         RipMouse               29
  2270.         Init                   16         RipMove                20
  2271.         IntToStr               42         RipNoMore              37
  2272.         KillBuffer             42         RipOnePalette          19
  2273.         KillRegions            42         RipOval                23
  2274.         Mega4ToLong            44         RipOvalArc             24
  2275.         MegaToWord             44         RipOvalPieSlice        25
  2276.         MouseInit              40         RipPieSlice            24
  2277.         MouseOff               40         RipPixel               22
  2278.         MouseOn                40         RipPolygon             25
  2279.         ParseRip               39         RipPolyLine            26
  2280.         ParseRipStr            39         RipPutImage            30
  2281.         RipArc                 24         RipQuery               35
  2282.         RipBar                 22         RipReadScene           36
  2283.         RipBeginText           29         RipRectangle           22
  2284.         RipBezier              25         RipRegionText          30
  2285.         RipButton              34         RipResetWindows        17
  2286.         RipButtonStyle         32         RipSetPalette          19
  2287.         RipCircle              23         RipText                20
  2288.         RipColor               18         RipTextWindow          16
  2289.         RipCopyRegion          35         RipTextXY              21
  2290.         RipDefine              34         RipViewPort            16
  2291.         RipEndText             30         RipWriteIcon           31
  2292.         RipEnterBlockMode      37         RipWriteMode           20
  2293.         RipEraseEOL            18         SendStr                38
  2294.         RipEraseView           17         SendStrCR              38
  2295.         RipEraseWindow         17         SetMousePos            41
  2296.         RipFileQuery           36         StatLine               38
  2297.         RipFill                26         StrToInt               43
  2298.         RipFilledOval          23         WordToMega             43
  2299.         RipFillPattern         28         WordToMega4            44
  2300.  
  2301. --EOF--
  2302.